1. The Field of the Invention
The present invention relates generally to systems for providing informational assistance relating to software applications. More particularly, the present invention relates to a computer-implemented system for generating, maintaining, and providing user-generated software application documentation and making the documentation selectively sharable among various users.
2. The Relevant Technology
The computer and computer software fields are experiencing a great explosion in the growth of technology. The rapid generation of increasingly complex computer technology can be seen as both a boon and a bane. Increasingly powerful computers and the highly complex computer programs that operate thereon provide benefits on a scale previously unseen. Computer operators are now provided with tools that achieve tasks in a fraction of the time previously required, if indeed those tasks could previously have been performed at all.
Nevertheless, this increasing sophistication comes at a price. For instance, the increasingly sophisticated computer programs now available require large amounts of specialized user training and accustomization in order to provide productivity gains. Additionally, installing, maintaining, and using such programs is effectively becoming an increasingly daunting task.
Consider the situation where a computer administrator is faced with the task of installing a complex computer program to operate on a large scale such as, for instance, within a government entity, university, or large business organization. The computer program often comes packaged with a myriad of installation configurations and options. Additionally, the computer program may need to be installed differently or configured differently for different departments within a given organization. Likewise, where the program is being administered over a widely dispersed computer system and across different platforms, it may require a high degree of customization. Such customization may be customer-specific.
Many program installations are actually just updates of existing versions of the program. In such cases, many transitional considerations must be properly understood in the xe2x80x9cmigrationxe2x80x9d between the earlier version and the later version that is to be installed. For example, complex operations may be necessary for the installation of the later program. These operations may require that operators be aware of company, department, or site specific policies, procedures, and/or guidance to successfully conduct such operations.
A disadvantage of current program installation systems is the generally limited amount of information available to operators and administrators during installation. Furthermore, current program installation systems provide no mechanism for providing installation and configuration information, policies, procedures, and guidelines specific to the company, department, or site during and prior to the installation. This lack of information availability to system operators and administrators often results in wasted resources due to incorrect installations of complex computer programs caused by the operators"" or administrators"" ignorance of the company, department, or site specific policies, procedures, or guidelines regarding correct configuration for installation.
One manner in which the field of computer technology has dealt with the increased complexity of computer programs is through interactive help programs provided within graphical user interfaces (GUI). Within modern interactive computer programs, a user is often presented with intricate help features through the GUI. Within the GUI, functions of the program may be represented as objects through graphical representations. In these interfaces, many previously coded programming commands are replaced with selectable two-dimensional or three-dimensional graphic images on a computer display device. Icons may symbolically indicate the type of operation the computer system will execute if the icon function is selected.
In addition, many such interfaces utilize multiple xe2x80x9cwindowsxe2x80x9d displayed on the display device, each with combinations of text and graphics to convey information to a user. Each window may take the form of any of a variety of objects such as a file folder, loose-leaf binder, or simple rectangle. The windows may overlap one another with the xe2x80x9ctopxe2x80x9d window fully visible and representing a current work file. Windows not currently in use can be minimized for quick access at a later point. Users are permitted to operate on and manipulate the window contents and the window itself, as if the image constituted an actual object.
Nevertheless, such powerful and intuitive help systems have not yet been adequately designed to provide for integration of user-generated information, policies, procedures, and guidelines within a program. Likewise, these help systems have generally not been configured to modify help files or otherwise provide information from the manufacturer that becomes available after the installation program and software application have been distributed from the manufacturer to the customer. In particular, administrators, operators, and users are currently unable to employ such help systems to share information, policies, procedures, and guidelines related to the installation, configuration, and use of a software application with other users who need or could benefit from access to such information.
In view of the foregoing discussion, it is clearly desirable to provide methods and apparatus for the integration of user-generated, sharable documentation into complex software applications and programs. Such user-generated software documentation would be highly advantageous if it were made seamlessly available to users, operators, and administrators who use, install, configure, maintain, migrate, or otherwise interact with an installation program or other software application.
Such documentation would also be highly advantageous if collected into a central repository or group of repositories where the documentation would be readily accessible to users, even from remote locations. Implementation of methods and/or apparatus for selectively controlling the availability of such documentation to certain users and groups of users would also be advantageous.
The apparatus of the present invention has been developed in response to the needs remaining in the present state of the art, and in particular, in response to the problems and needs not yet addressed by currently available help systems. Thus, it is an overall objective of the present invention to provide a user-generated documentation integration system with accompanying methods for use, generation, and training for overcoming some or all of the problems discussed above as existing in the art.
In embodiments disclosed herein, the user-generated documentation integration system is used for providing shared, dynamically customizable documentation for use in connection with a software application. The user-generated documentation integration system preferably comprises a processor for executing instructions and a memory device having thereon modules of operational data and executable code for execution by the processor.
In one embodiment, the modules of operational data (data) and executable code (executables) comprise a software application, created by a manufacturer and executable on a computer processor for the benefit of a user. A documentation repository or group of documentation repositories may be provided for storing user-generated documentation relating to the software application. The software application may also include a linker module that maintains a link to a documentation repository so a user may seamlessly access user-generated documentation from within the software application as if the documentation were integral to the software application.
In one embodiment, the documentation repository comprises a directory that is generated by an operating system and that is located external to the software application. The documentation repository may reside on a network at a location remote from the software application. The network on which the documentation repository resides may be the Internet. The documentation repository is preferably implemented so it appears to a user to be a seamlessly integrated part of the software application, regardless of the documentation repository""s physical location.
In one embodiment, the user-generated documentation comprises user help files pertaining to the software application that each contain documentation generated by a user or customer related to the software application. A file manager may be provided to maintain both the documentation repository and the help files stored in the documentation repository.
The user-generated documentation may be accessed through a window available within the software application. The window may be adapted to display a listing of available user help files, which may be individually selectable from the listing by a user for presentation on a display device. The window may also include an interface that enables a user to select a desired documentation repository from among a group of one or more available documentation repositories. A viewer module may be provided having one or more viewers capable of displaying the user-generated documentation on a display device for the benefit of a user.
In one embodiment, a training module employs user-generated documentation to provide training related to the software application. The provided training typically comprises displaying the user-generated documentation to a user or trainee in a selected order and manner adapted for training purposes.
A documentation generation module may be provided. The documentation generation module may comprise one or more programs configured to create and edit user help files and other user-generated documentation.
A filter module may also be provided and may selectively control access to the user-generated documentation stored in one or more of the documentation repositories. The filter module may also include a security overlay configured to selectively grant to users having designated access rights access to the user-generated documentation. The filter module may further include a group assignor adapted to assign users to groups having rights to access the user-generated documentation.
A standard help module may also be present in the software application. The standard help module may provide pre-defined help files containing information regarding the use of the user-generated documentation integration system and may be called concurrently with an invocation of the user-generated documentation access window.
In one embodiment, a method for providing sharable, dynamically customizable software documentation may comprise providing user-generated documentation relating to a software application and storing the user-generated documentation in a documentation repository. The user-generated documentation may be selected, accessed, and displayed on a display device according to the needs of a user and for the benefit of a user.
A method of providing training to a user may employ user-generated documentation. The method may comprise displaying user-generated documentation to a user in an order and a manner beneficial for training purposes, and may also include evaluate of the training by administering a test or quiz.
In one embodiment, a method for generating user documentation may include generating new help files using a documentation generation program, editing existing user help files using a documentation generation program, and saving the new or edited user help files into selected documentation repositories.
These and other objects, features, and advantages of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.